SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_D03]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : OFISIS                 --*/  
/*---Sistema              : Presupuesto                --*/  
/*---M÷dulo               : Empresa                    --*/  
/*---Programa             : Borrado de Operaci¸n       --*/  
/*---                       Movimiento Bancos (Egresos)--*/  
/*---                       Transferencia entre Bancos --*/  
/*---Script               : tcmovi_b.sql               --*/  
/*---Nombre SP            : SP_TCMOVI_BANC_D03         --*/  
/*---Desarrollado por     : Javier Flores A.           --*/  
/*---Fecha Creaci÷n       : 04/07/1999                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versi÷n              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/    
/*---ModIficado 1 por     :Maribel Julca Rodriguez     --*/    
/*---Fecha ModIficaci,n   :22/01/2005                  --*/     
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/    
/*-------------------------------------------------------*/    
  
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Drop Proc SP_TCMOVI_BANC_D03                      --*/  
/*---Grant all on SP_TCMOVI_BANC_D03 to public         --*/   
/*---SP_TCMOVI_BANC_D03                                --*/  
/*-------------------------------------------------------*/  
 @ISCO_EMPR TD_VC_002,   
 @ISCO_USUA_MODI TD_VC_008_USUA,  
 @ISCO_BANC TD_VC_003,   
 @ISNU_CNTA_BANC TD_VC_020,  
 @ISAA_BNCO TD_VC_004,   
 @ISMM_BNCO TD_VC_002,   
 @ISTI_MOVI_BANC TD_VC_001,  
 @ISNU_COMP_BANC TD_VC_008,  
 @ISCO_TIPO_OPER TD_VC_003,   
 @INIM_MOVI TD_NU_016_004,  
 @IDFE_ANUL TD_DT_001,  
 @ISDE_OBSE TD_VC_100,  
 @ISNU_SOLI TD_VC_010,
 @ISCO_UNID_CNTB TD_VC_003
	As
Declare   
   @CNIM_CONV TD_NU_016_004,   
   @CSCO_EMPR_DEST TD_VC_002,   
   @CSCO_BANC_DEST TD_VC_003,   
   @CSNU_CNTA_DEST TD_VC_020,  
   @CSAA_BNCO_DEST TD_VC_004,   
   @CSMM_BNCO_DEST TD_VC_002,   
   @CSTI_MOVI_DEST TD_VC_001,   
   @CSNU_COMP_DEST TD_VC_008,  
   @CSCO_TIPO_OPER TD_VC_003,  
   @VSCO_TIPO_INAN TD_VC_003,  
   @VSCO_TIPO_EGAN TD_VC_003,     
   @VSST_GEAS_ANUL TD_VC_001,  
   @VSCO_TIPO_OPE1 TD_VC_003,  
   @VSCO_TIPO_OPE2 TD_VC_003,
   @CSCO_UNID_DEST TD_VC_003
  
 BEGIN TRAN SP_TCMOVI_BANC_D03  
  
   SELECT @VSCO_TIPO_INAN = CO_TIPO_OPER, @VSCO_TIPO_EGAN = CO_TIPO_OPEG, @VSST_GEAS_ANUL = ST_GEAS_ANUL  
   FROM   TMPARA_TESO   
   WHERE  CO_EMPR = @ISCO_EMPR  
  
   If @VSST_GEAS_ANUL = 'N'  
      Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_EGAN  
   Else      
     Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER  
       
   Update  TCMOVI_BANC  
   Set     TI_SITU = 'ANU',   
           DE_OBSE = @ISDE_OBSE,  
           CO_TIPO_OPER = @VSCO_TIPO_OPE1,  
           CO_USUA_MODI = @ISCO_USUA_MODI,  
           FE_USUA_MODI = GETDATE()  
   Where   CO_EMPR = @ISCO_EMPR    
   And     CO_UNID_CONC = @ISCO_UNID_CNTB
   And     CO_BANC = @ISCO_BANC   
   And     NU_CNTA_BANC = @ISNU_CNTA_BANC   
   And     AA_BNCO = @ISAA_BNCO  
   And     MM_BNCO = @ISMM_BNCO  
   And     TI_MOVI_BANC = @ISTI_MOVI_BANC   
   And     NU_COMP_BANC = @ISNU_COMP_BANC   
  
   If @@error <> 0  
      Begin  
        Rollback Tran  
        Return  
      End  
  
   /* Actualizando la Tabla de Solicitudes a Caja a Situaci©n APROBADAS */  
  
    Update TMSOLI_CABA  
    Set TI_SITU = 'APR', FE_LIQU = NULL,   
        CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()           
    Where CO_EMPR = @ISCO_EMPR  
    And   NU_SOLI = @ISNU_SOLI  
  
    If @@error <> 0  
       Begin  
         Rollback tran    
  Return  
       End  
    
    Declare CU_TCMOVI_BANC_D03_1 Cursor  
    For  
    Select CO_EMPR_DEST, CO_BANC_DEST, NU_CNTA_DEST, AA_BNCO_DEST, MM_BNCO_DEST, TI_MOVI_DEST,  
           NU_COMP_DEST, IM_CONV, CO_TIPO_OPER, CO_UNID_DEST
    From   TDMOVI_TRBA  
    Where  CO_EMPR = @ISCO_EMPR  
    And    CO_UNID_CONC = @ISCO_UNID_CNTB
    And    CO_BANC = @ISCO_BANC  
    And    NU_CNTA_BANC = @ISNU_CNTA_BANC  
    And    AA_BNCO = @ISAA_BNCO  
    And    MM_BNCO = @ISMM_BNCO  
    And    TI_MOVI_BANC = @ISTI_MOVI_BANC  
    And    NU_COMP_BANC = @ISNU_COMP_BANC  
    And    CO_BANC_DEST Is Not Null  
    And    NU_CNTA_DEST Is Not Null  
   
    Open CU_TCMOVI_BANC_D03_1  
    Fetch CU_TCMOVI_BANC_D03_1 into @CSCO_EMPR_DEST, @CSCO_BANC_DEST, @CSNU_CNTA_DEST, @CSAA_BNCO_DEST,   
    @CSMM_BNCO_DEST, @CSTI_MOVI_DEST, @CSNU_COMP_DEST, @CNIM_CONV, @CSCO_TIPO_OPER, @CSCO_UNID_DEST
  
    While (@@FETCH_STATUS = 0)  
      Begin  
        If (@@FETCH_STATUS < 0)  
           Begin  
      RAISERROR 20001 'FIN DE ARCHIVO'  
             Close CU_TCMOVI_BANC_D03_1  
      Deallocate CU_TCMOVI_BANC_D03_1  
             Rollback tran  
      Return  
           End  
  
  
        If @VSST_GEAS_ANUL = 'N'  
           Select @VSCO_TIPO_OPE2 = @VSCO_TIPO_INAN  
        Else      
           Select @VSCO_TIPO_OPE2 = @CSCO_TIPO_OPER  
  
        Update  TCMOVI_BANC  
        Set     TI_SITU = 'ANU',   
                DE_OBSE = @ISDE_OBSE,  
                CO_TIPO_OPER = @VSCO_TIPO_OPE2,  
                CO_USUA_MODI = @ISCO_USUA_MODI,  
                FE_USUA_MODI = GETDATE()  
        Where  CO_EMPR = @CSCO_EMPR_DEST  
        And    CO_UNID_CONC = @ISCO_UNID_CNTB
        And    CO_BANC = @CSCO_BANC_DEST  
        And    NU_CNTA_BANC = @CSNU_CNTA_DEST  
        And    AA_BNCO = @CSAA_BNCO_DEST   
        And    MM_BNCO = @CSMM_BNCO_DEST  
        And    TI_MOVI_BANC = 'I'  
        And    NU_COMP_BANC = @CSNU_COMP_DEST  
  
        If @@error <> 0  
           Begin  
             Close CU_TCMOVI_BANC_D03_1  
      Deallocate CU_TCMOVI_BANC_D03_1  
             rollback tran  
      return  
           End  
  
        UPDATE TDMOVI_TRBA SET CO_TIPO_OPER = @VSCO_TIPO_OPE2  
        WHERE CURRENT OF CU_TCMOVI_BANC_D03_1  
  
        Insert into TTBANC_ANUL (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,   
        CO_TIPO_OPER, FE_ANUL, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC)  
        Values (@CSCO_EMPR_DEST, @CSCO_BANC_DEST, @CSNU_CNTA_DEST, @CSAA_BNCO_DEST, @CSMM_BNCO_DEST, @CSTI_MOVI_DEST,   
        @CSNU_COMP_DEST, @VSCO_TIPO_OPE2,  @IDFE_ANUL, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), @CSCO_UNID_DEST)
  
        If @@error <> 0  
           Begin  
             Close CU_TCMOVI_BANC_D03_1  
      Deallocate CU_TCMOVI_BANC_D03_1  
             rollback tran  
      return  
           End  
  
       Fetch CU_TCMOVI_BANC_D03_1 into @CSCO_EMPR_DEST, @CSCO_BANC_DEST, @CSNU_CNTA_DEST, @CSAA_BNCO_DEST,   
       @CSMM_BNCO_DEST, @CSTI_MOVI_DEST, @CSNU_COMP_DEST, @CNIM_CONV, @CSCO_TIPO_OPER, @CSCO_UNID_DEST
    End   
  
    Close CU_TCMOVI_BANC_D03_1  
    deallocate CU_TCMOVI_BANC_D03_1  
  
  
  Insert into TTBANC_ANUL (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,   
    CO_TIPO_OPER, FE_ANUL, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC)  
    Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,   
            @VSCO_TIPO_OPE1,  @IDFE_ANUL, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_UNID_CNTB)  
  
    If @@error <> 0  
       Begin  
         Rollback tran  
  Return  
       End  
  
 Commit Tran  
  
/*------------------------ Fin ------------------------------*/


GO
